import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: null,
    // 商品总价格
    allPrice: 0,
    // 用来存储总数据
    allArr: [],
    // 全选的按钮
    selectorAll: false,
    // 优惠券的价格
    discounts:0,
    // 是否使用优惠券
    coupon:0
  },
  mutations: {
    setCount(state, payload) {
      state.count = payload;
    },
    // 用来获取数据的方法
    getAllData(state) {
      let count = 0;
      state.allArr.forEach(item => {
        if (item.flag) {
          count++;
        }
      });
      if (count === state.allArr[0].all) {
        state.selectorAll = true;
        count = 0;
      } else {
        state.selectorAll = false
      }
    },
    // 首先获取商品的数据
    getFirstType(state, payload) {
      state.allArr = payload
    },
    // 设置全选
    setAllSelector(state) {
      state.selectorAll = !state.selectorAll;
      state.allArr.forEach(item => {
        item.flag = state.selectorAll
      })
    },
    // 左右控制金额
    control(state, payload) {
      state.allArr.forEach(item => {
        if (item.data.sid === payload.sid) {
          item.data.count = payload.count
        }
      })
      let addCount = 0
      state.allArr.forEach(item => {
        if (item.flag) {
          addCount += item.data.price * item.data.count
        }
      })
      state.allPrice = addCount * 100;
    },
    // 设置金额
    setPrice(state) {
      let addCount = 0
      state.allArr.forEach(item => {
        if (item.flag) {
          addCount += item.data.price * item.data.count
        }
      })
      state.allPrice = addCount * 100
    },
    // 重置全选框
    AllSelectorUpdate(state){
          state.selectorAll=false; 
          state.allPrice=0
    },
    // 点击编辑重置所有
    reset(state){
      state.allArr.forEach(item => {
        //  重置状态
         item.flag=false;
      })
      state.selectorAll=false;
      // 重置价格
      state.allPrice=0
    },
    // 添加购物车同步主页购物车的数量
    mainCount(state,payload){
        state.count=payload
    },
    // 删除数据
    delectData(state){
       for(let i=0;i<state.allArr.length;i++){
         if(state.allArr[i].flag){
          state.allArr.splice(i,1);
          i--;
         }
       }
       state.count=state.allArr.length;
       state.allArr.forEach(item=> {
             item.all=state.allArr.length
       });
       if(state.allArr.length==0){
        state.selectorAll=false
       }
    },
    // 设置优惠券
    settDiscounts(state,payload){
         state.discounts=payload
    },
    setCoupon(state,payload){
         state.coupon=payload
    }
  },
  actions: {
  },
  modules: {
  }
})
